package liskov_substitution

import "fmt"

type GoodFlyableBird struct {
	GoodNormalBird
}

func NewGoodFlyableBird(id int, name string) IGoodBird {
	return &GoodFlyableBird{
		*NewGoodNormalBird(id, name),
	}
}

func (me *GoodFlyableBird) Fly() error {
	fmt.Printf("GoodFlyableBird.Fly, id=%v, name=%v\n", me.ID(), me.Name())
	return nil
}
